#ifndef __SYSTEM_H__
#define __SYSTEM_H__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <time.h>
#include <pwd.h>
#include <grp.h>
#include <string.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <ctype.h>
#include <sys/wait.h>
#include <syslog.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <signal.h>
#include <pthread.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/epoll.h>
#include <crypt.h>
#include <shadow.h>

#define ARGS_CHECK(args, n){   \
    if(args != n){             \
        fprintf(stderr, "ERROR： expected %d arguments.\n", n);  \
        exit(1);               \
    }                          \
}


#define ERROR_CHECK(retval, val, msg){   \
    if(retval == val){                   \
        perror(msg);                     \
        exit(1);                         \
    }                                    \
}

#define THREAD_ERROR_CHECK(ret, msg) {if(ret != 0){fprintf(stderr, "%s:%s\n", msg, strerror(ret));}}

#endif
